#!/bin/bash

# 系统巡检脚本
# 输出文件
OUTPUT_FILE="/var/log/system_inspection.log"
# 日志时间戳
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")

# 函数：记录日志
log_message() {
    echo "$TIMESTAMP - $1" | tee -a "$OUTPUT_FILE"
}

# 函数：检查CPU使用率
check_cpu() {
    CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4 "%"}')
    log_message "CPU使用率: $CPU_USAGE"
}

# 函数：检查内存使用情况
check_memory() {
    MEM_TOTAL=$(free -m | awk '/^Mem:/{print $2}')
    MEM_USED=$(free -m | awk '/^Mem:/{print $3}')
    MEM_USAGE=$(awk "BEGIN {print ($MEM_USED/$MEM_TOTAL)*100.0}")
    MEM_USAGE_PERCENT=$(echo "$MEM_USAGE" | bc -l | xargs printf "%.2f\n")
    log_message "内存使用情况: $MEM_USAGE_PERCENT%"
}

# 函数：检查磁盘空间
check_disk() {
    DISK_USAGE=$(df -h / | awk 'NR==2{printf "根分区使用率: %s\n", $5}')
    log_message "$DISK_USAGE"
}

# 函数：检查系统日志
check_logs() {
    # 检查系统日志文件（如/var/log/syslog或/var/log/messages）
    # 这里以syslog为例，根据系统类型可能需要调整
    LOG_FILE="/var/log/syslog"
    if [ -f "$LOG_FILE" ]; then
        log_message "检查系统日志（最近10行）:"
        tail -n 10 "$LOG_FILE" | while read -r line; do
            log_message "  $line"
        done
    else
        log_message "系统日志文件 $LOG_FILE 不存在"
    fi
}


# 主程序
log_message "系统巡检开始"

check_cpu
check_memory
check_disk
check_logs

log_message "系统巡检结束"
